<?php
/**
 * index.php represents the hub of the Zen Cart MVC system(构建Zen Cart MVC系统路由)
 * 
 * Overview of flow(预览)
 * <ul>
 * <li>加载 application_top.php - 查看 {@tutorial initsystem}</li>
 * <li>基于 $_SESSION['language'] 设定主语言目录</li>
 * <li>加载 *header_php.php 文件，从 includes/modules/pages/PAGE_NAME/ </li>
 * <li>加载 html_header.php(普通模版文件)</li>
 * <li>加载 main_template_vars.php(普通模板文件)</li>
 * <li>加载 on_load 脚本(页面基础)</li>
 * <li>加载 tpl_main_page.php(普通模版文件)</li>
 * <li>加载 application_bottom.php</li>
 * </ul>
 *
 * @package general
 * @copyright Copyright 2003-2005 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: index.php 2942 2006-02-02 04:41:23Z drbyte $
 */
/**
 * Load common library stuff 加载通用素材库
 */
  require('includes/application_top.php');

  $language_page_directory = DIR_WS_LANGUAGES . $_SESSION['language'] . '/';  // 语言目录
  $directory_array = $template->get_template_part($code_page_directory, '/^header_php/'); 
  foreach ($directory_array as $value) { 
/**
 * 为给定的页面加载头代码
 * 这些代码存储于 includes/modules/pages/PAGE_NAME/ 目录
 * 这个目录中的'header_php.php'文件被加载进来
 */
    require($code_page_directory . '/' . $value);
  }
/**
 * 加载 html_header.php 文件. 这些代码将出现在HTML的<head></head>标签中。
 * 可以在页面或者模版中对其进行重写覆盖。
 * 自定义模版可以定义自己的common/html_header.php文件
 */
  require($template->get_template_dir('html_header.php',DIR_WS_TEMPLATE, $current_page_base,'common'). '/html_header.php');
/**
 * 定义用于includes/main_template_vars.php文件的模板变量，除非
 * includes/pages/{page_name}/目录中有文件对其进行覆盖重写。允许不同的页面
 * 有不同的范本。
 */
  require($template->get_template_dir('main_template_vars.php',DIR_WS_TEMPLATE, $current_page_base,'common'). '/main_template_vars.php');
/**
 * 从个人页面和模版设置读取 "on_load" 脚本
 * 注意: on_load_*.js 文件必须仅包含能插入到<body>中的on_load = ""的参数的源代码
 * 在目录"/includes/modules/pages"中，查看名字为"on_load_*.js"的文件
 */
  $directory_array = $template->get_template_part(DIR_WS_MODULES . 'pages/' . $current_page_base, '/^on_load_/', '.js');
  foreach ($directory_array as $value) { 
    $onload_file = DIR_WS_MODULES . 'pages/' . $current_page_base . '/' . $value;
    $read_contents='';
    $lines = @file($onload_file);
    foreach($lines as $line) {
      $read_contents .= $line;
    }
  $za_onload_array[] = $read_contents;
  }
/**
 * 读取"includes/templates/TEMPLATE/jscript/on_load/on_load_*.js" 全站设置
 */
  $directory_array=array();
  $tpl_dir=$template->get_template_dir('.js', DIR_WS_TEMPLATE, 'jscript/on_load', 'jscript/on_load_');
  $directory_array = $template->get_template_part($tpl_dir ,'/^on_load_/', '.js');
  foreach ($directory_array as $value) { 
    $onload_file = $tpl_dir . '/' . $value;
    $read_contents='';
    $lines = @file($onload_file);
    foreach($lines as $line) {
      $read_contents .= $line;
    }
    $za_onload_array[] = $read_contents;
  }

  // 设置 $zc_first_field 用其来兼容以前的版本
  if (isset($zc_first_field) && $zc_first_field !='') $za_onload_array[] = $zc_first_field;

  $zv_onload = "";
  if (isset($za_onload_array) && count($za_onload_array)>0) $zv_onload=implode(';',$za_onload_array);

  // 确保没有连续的';'并保证结尾也存在';'
  $zv_onload = str_replace(';;',';',$zv_onload.';');

  // 确保一个空列表真空
  if (trim($zv_onload) == ';') $zv_onload='';
/**
 * Define the template that will govern the overall page layout, can be done on a page by page basis
 * or using a default template.安装的默认模版将是标准的三栏布局。这个模版也将加载页面BODY代码
 * (基于$body_code变量)
 */
  require($template->get_template_dir('tpl_main_page.php',DIR_WS_TEMPLATE, $current_page_base,'common'). '/tpl_main_page.php');
?>
</html>
<?php
/**
 * 加载页面执行完毕之前需要执行的普通代码
 */
?>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>